entry: Refactor get_icon_pixbuf
authorTimm Bäder <mail@baedert.org>
Fri, 2 Dec 2016 14:16:10 +0000 (15:16 +0100)
committerTimm Bäder <mail@baedert.org>
Sat, 3 Dec 2016 12:19:26 +0000 (13:19 +0100)
This way it will only return a pixbuf if the icon helper has a pixbuf.

gtk/gtkentry.c
gtk/gtkiconhelper.c
gtk/gtkiconhelperprivate.h

index 5616e513e1b01916fe835ae0033e416179354015..dafb25e337178660bb038a4d51cca148bfca0d2a 100644 (file)
@@ -8177,9 +8177,6 @@ gtk_entry_get_icon_pixbuf (GtkEntry             *entry,
 {
   GtkEntryPrivate *priv;
   EntryIconInfo *icon_info;
-  cairo_surface_t *surface;
-  GdkPixbuf *pixbuf;
-  int width, height;
 
   g_return_val_if_fail (GTK_IS_ENTRY (entry), NULL);
   g_return_val_if_fail (IS_VALID_ICON_POSITION (icon_pos), NULL);
@@ -8191,25 +8188,7 @@ gtk_entry_get_icon_pixbuf (GtkEntry             *entry,
   if (!icon_info)
     return NULL;
 
-  _gtk_icon_helper_get_size (GTK_ICON_HELPER (icon_info->gadget), &width, &height);
-  surface = gtk_icon_helper_load_surface (GTK_ICON_HELPER (icon_info->gadget), 1);
-
-  pixbuf = gdk_pixbuf_get_from_surface (surface, 0, 0, width, height);
-
-  cairo_surface_destroy (surface);
-
-  /* HACK: unfortunately this is transfer none, so we attach it somehwere
-   * convenient.
-   */
-  if (pixbuf)
-    {
-      g_object_set_data_full (G_OBJECT (icon_info->gadget),
-                              "gtk-entry-pixbuf",
-                              pixbuf,
-                              g_object_unref);
-    }
-
-  return pixbuf;
+  return _gtk_icon_helper_peek_pixbuf (GTK_ICON_HELPER (icon_info->gadget));
 }
 
 /**
index fcf3bbed721976712b9fe64225049ad26b983799..8ed26c536ed4779cef1454a2d7c5b38a94ea67ad 100644 (file)
@@ -483,7 +483,7 @@ ensure_surface_for_gicon (GtkIconHelper    *self,
   return surface;
 }
 
-cairo_surface_t *
+static cairo_surface_t *
 gtk_icon_helper_load_surface (GtkIconHelper   *self,
                               int              scale)
 {
index acfdd20fde7449001a95e07b60d642b077a84a75..63aa826c848b1077ca4a257c3340d392ef6ce5d4 100644 (file)
@@ -115,8 +115,6 @@ cairo_surface_t *_gtk_icon_helper_peek_surface (GtkIconHelper *self);
 GtkImageDefinition *gtk_icon_helper_get_definition (GtkIconHelper *self);
 const gchar *_gtk_icon_helper_get_icon_name (GtkIconHelper *self);
 
-cairo_surface_t *gtk_icon_helper_load_surface (GtkIconHelper *self,
-                                               int              scale);
 void _gtk_icon_helper_get_size (GtkIconHelper *self,
                                 gint *width_out,
                                 gint *height_out);